package com.hy.three391;

/**
 * Created With IntelliJ IDEA.
 * Descriptions:换水问题 II
 *
 * 给你两个整数 numBottles 和 numExchange 。
 * numBottles 代表你最初拥有的满水瓶数量。在一次操作中，你可以执行以下操作之一：
 * 喝掉任意数量的满水瓶，使它们变成空水瓶。
 * 用 numExchange 个空水瓶交换一个满水瓶。然后，将 numExchange 的值增加 1 。
 * 注意，你不能使用相同的 numExchange 值交换多批空水瓶。例如，如果 numBottles == 3 并且 numExchange == 1 ，
 * 则不能用 3 个空水瓶交换成 3 个满水瓶。
 *
 * 返回你 最多 可以喝到多少瓶水。
 * User:Mr.Du
 * Date:2024/3/31
 * Time:10:59
 */
public class MaxBottlesDrunk {
    public int maxBottlesDrunk(int numBottles, int numExchange) {
        int res = numBottles;
        int e = numBottles;
        int cnt = 0;
        while(e + cnt >= numExchange){
            e -= numExchange;
            numExchange++;
            cnt++;
        }
        if(cnt + e >= numExchange) cnt++;
        return res + cnt;
    }

    public int maxBottlesDrunk2(int n, int m) {
        int ret = n;
        while (n >= m) {
            n -= m;
            m += 1;
            n += 1;
            ret += 1;
        }
        return ret;
    }
}
